'use strict';

//比较日期大小
function getDataCompare(d2) {
	//当前时间
	let d1 = new Date();

	//转换为标准时间"2019/12/29 23:59:59"
	d2 = d2.replace(/-/g, "/");
	d2 = new Date(d2);

	//如果当前时间大于到期时间
	//valueOf() 函数返回指定对象的原始值,这里返回以毫秒数存储的时间值
	return d1.valueOf() > d2.valueOf()
}

module.exports = {
	/**
	 * 获取我的会员列表
	 * @url client/vip_roles/kh/getMyRoles 前端调用的url参数地址
	 * data 请求参数
	 * @param {String} params1  参数1
	 */
	main: async (event) => {
		let { data = {}, userInfo, util, filterResponse, originalParam } = event;
		let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
		let { uid } = data;
		let res = { code: 0, msg: "" };
		// 业务逻辑开始-----------------------------------------------------------

		//获取我的所有权限
		let vip_roles = userInfo.vip_role || { all: [] }

		//获取字典数据
		let role_data = await vk.baseDao.findByWhereJson({
			dbName: "dictionary-table",
			whereJson: { dictionary_id: "vip-roles" }
		})

		if (!role_data.number) {
			res.data = []
			return res
		}

		let my_role_data = []
		//分割处理
		my_role_data = role_data.number.split(',').map(v => {
			let item = v.split('|')
			return {
				value: item[1] || 'error',
				label: item[0] || 'error',
				expired_at: vip_roles[item[1]] || null
			}
		}).filter(v => vip_roles.all.includes(v.value) && (vip_roles[v.value] == 0 || !getDataCompare(
			vip_roles[v.value])))

		res.data = my_role_data
		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}
}
